Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


lang/README.ru.md v4.5.0-rc.4 (17844e91) Text, 20.69 KB

Reticulum MeshChatX


Существенно доработанный и функционально расширенный форк Reticulum MeshChat от Liam Cottle.

Этот проект независим от оригинального Reticulum MeshChat и не связан с ним.

• Сайт: meshchatx.com
• Исходный код: git.quad4.io/RNS-Things/MeshChatX
• Официальное зеркало: github.com/Quad4/MeshChatX — пока также используется для сборок Windows и macOS.
• Журнал изменений: CHANGELOG.md
• TODO: Boards

Важные отличия от Reticulum MeshChat

• Используется LXST
• Peewee ORM заменён на прямой SQL
• Axios заменён на нативный T383838fetch
• Electron 41.x (встроенная среда Node 24)
• Колёса T383838.whl с веб-сервером и встроенным фронтендом для разных сценариев развёртывания
• i18n
• PNPM и Poetry для зависимостей

│ [!WARNING] MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat.
│ Сделайте резервную копию перед миграцией или тестированием.

│ [!WARNING] Устаревшие системы пока не полностью поддерживаются. Текущие требования: Python T383838>=3.11
│ и Node T383838>=24 (Electron 41 соответствует Node 24; поле T383838engines в T383838package.json и CI на той же
│ линии).

Требования

• Python T383838>=3.11 (из T383838pyproject.toml)
• Node.js T383838>=24 (из T383838package.json, поле T383838engines)
• pnpm T38383810.33.0 (из T383838package.json, поле T383838packageManager)
• Poetry (используется в T383838Taskfile.yml и CI)

T282828
task install
task lint:all
task test:all
task build:all

Способы установки

Выберите способ в соответствии со средой и форматом пакета.

┌─────────────────────┬─────────────────────┬──────────────┬───────────────────────────────────────┐
│ Метод │ Включает фронтенд │ Архитектуры │ Лучше всего для │
├─────────────────────┼─────────────────────┼──────────────┼───────────────────────────────────────┤
│ Docker-образ │ Да │ T383838linux/amd64… │ Быстрый запуск на серверах Linux │
│ Python wheel (T383838.whl) │ Да │ Любая архит… │ Безголовый/веб-сервер без сборки Node │
│ Linux AppImage │ Да │ T383838x64, T383838arm64 │ Портативное использование на ПК │
│ Debian-пакет (T383838.deb) │ Да │ T383838x64, T383838arm64 │ Установка на Debian/Ubuntu │
│ RPM-пакет (T383838.rpm) │ Да │ Зависит от … │ Fedora/RHEL/openSUSE │
│ Из исходников │ Собирается локально │ Архитектура… │ Разработка и кастомные сборки │
└─────────────────────┴─────────────────────┴──────────────┴───────────────────────────────────────┘

Примечания:

• Релизный workflow явно собирает Linux T383838x64 и T383838arm64 AppImage + DEB.
• RPM также собирается при попытке и загружается при успехе.

Быстрый старт: Docker

T282828
docker compose up -d

Compose-файл по умолчанию:

• T383838127.0.0.1:8000 на хосте -> порт T3838388000 контейнера
• T383838./meshchat-config -> T383838/config для данных

Если возникают ошибки прав доступа:

T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config


Установка из релизных артефактов

1) Linux AppImage (x64/arm64)

1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.AppImage из релизов.
2. Сделайте исполняемым и запустите:

T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu T383838.deb (x64/arm64)

1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.deb.
2. Установите:

T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM-системы

1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.rpm, если есть в релизе.
2. Установите:

T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm

4) Python wheel (T383838.whl)

В релизных wheel включены собранные веб-ресурсы.

T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless

T383838pipx также поддерживается:

T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl

Запуск из исходников (режим веб-сервера)

Для разработки или локальной сборки.

T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"poetry==2.3.4"
poetry check --lock
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1


Пояснения к командам установки:

• T383838pnpm install --frozen-lockfile запрещает обновление T383838pnpm-lock.yaml и завершится с ошибкой, если lock-файл не соответствует T383838package.json. Это исключает скрытую установку неожиданной upstream-версии.
• T383838verify-store-integrity=true уже задан в T383838.npmrc проекта; явный T383838pnpm config set дополнительно ужесточает пользовательскую конфигурацию.
• Lifecycle-скрипты (T383838preinstall/T383838postinstall) по умолчанию заблокированы в pnpm v10+. Скрипты установки могут запускать только пакеты из T383838pnpm.onlyBuiltDependencies в T383838package.json (сейчас это T383838electron, T383838electron-winstaller, T383838esbuild, T383838protobufjs).
• T383838poetry check --lock сразу падает, если T383838poetry.lock не синхронизирован с T383838pyproject.toml; затем T383838poetry install ставит зависимости только из lock-файла.
• Для строгой установки Poetry только из lock-файла зафиксируйте версию Poetry через T383838pip install "poetry==2.3.4", как это делает CI.

Если вы намеренно хотите обновить зависимости, выполните T383838pnpm update / T383838poetry update отдельным коммитом и проверьте diff lock-файлов до пуша.

Запуск в песочнице (Linux)

Чтобы запускать нативный T383838meshchatx (псевдоним: T383838meshchat) с дополнительной изоляцией файловой системы, можно использовать Firejail или Bubblewrap (T383838bwrap), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, USB-serial) в:


Та же страница отображается во встроенной Документации (документация MeshChatX), когда она отдаётся из T383838meshchatx-docs.

Linux на ПК: шрифты эмодзи

Выбор эмодзи отображает стандартные Unicode-эмодзи системными шрифтами (Electron/Chromium). Если вместо них пустые квадраты («тофу»), установите пакет цветных эмодзи и перезапустите приложение.

┌────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Семейство (примеры) │ Пакет │
├────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji (T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji (T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts
└────────────────────────────┴──────────────────────────────────────────────────────────────────┘

После установки при необходимости выполните T383838fc-cache -fv. Опционально: T383838noto-fonts для лучшего покрытия символов на минимальных установках.

Сборка настольных пакетов из исходников

Скрипты заданы в T383838package.json и T383838Taskfile.yml.

Linux x64 AppImage + DEB

T282828
pnpm run dist:linux-x64

Linux arm64 AppImage + DEB

T282828
pnpm run dist:linux-arm64

RPM

T282828
pnpm run dist:rpm

Через Task:

T282828
task dist:fe:rpm

Поддержка архитектур

• Образ Docker: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (скрипты сборки есть)
• macOS: скрипты сборки (T383838arm64, T383838universal) для локальных сред
• Android: нативные APK — ABI T383838arm64-v8a, T383838x86_64, плюс universal

Android

MeshChatX поддерживает нативные Android APK (не только Termux).

Сборка APK из исходников

Из корня репозитория:

T282828
T8b949e# 1) Собрать колёса Chaquopy для android/app/build.gradle
bash scripts/build-android-wheels-local.sh

T8b949e# 2) Собрать slim APK по умолчанию (universal: один APK на flavor и тип сборки)
Tffa657cd android
./gradlew --no-daemon :app:assembleSlimDebug :app:assembleSlimRelease


Выходы определяются product flavors T383838slim / T383838full (размер дерева Python) и ABI-упаковкой T383838universal (по умолчанию) или T383838split (см. T383838android/app/build.gradle).

При T383838-PmeshchatxAbiPackaging=universal (по умолчанию) один APK содержит все выбранные ABI.

Отладка (T383838android/app/build/outputs/apk/slim/debug/):

• T383838app-slim-debug.apk

Релиз (T383838android/app/build/outputs/apk/slim/release/):

• T383838app-slim-release-unsigned.apk

Для полного Python-бандла: T383838:app:assembleFullDebug или T383838:app:assembleFullRelease.

Примечания:

• Релизные артефакты по умолчанию не подписаны, если не настроена подпись.
• Для одной сборки, например: T383838:app:assembleSlimDebug или T383838:app:assembleSlimRelease.
• ABI: T383838-PmeshchatxAbis или T383838MESHCHATX_ABIS; упаковка: T383838-PmeshchatxAbiPackaging или T383838MESHCHATX_ABI_PACKAGING.
• Дерево T383838meshchatx/ для Chaquopy: T383838slim синхронизируется в T383838src/slim/python/, T383838full в T383838src/full/python/. Подробнее в android/README.md.

Дополнительная документация:


Конфигурация

┌────────────────────────┬──────────────────────────────────────┬──────────────┬───────────────────┐
│ Аргумент │ Переменная окружения │ По умолчанию │ Описание │
├────────────────────────┼──────────────────────────────────────┼──────────────┼───────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Адрес привязки в… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Порт веб-сервера │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Отключить HTTPS │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (нет) │ Пути к PEM-серти… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (нет) │ Уровень лога сте… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Не открывать бра… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Базовая аутентиф… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Каталог данных │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ авто/bundled │ Каталог фронтенд… │
└────────────────────────┴──────────────────────────────────────┴──────────────┴───────────────────┘

Ветки

┌────────┬────────────────────────────────────────────────────────────────────┐
│ Ветка │ Назначение │
├────────┼────────────────────────────────────────────────────────────────────┤
│ T383838master │ Стабильные релизы. Только код для продакшена. │
│ T383838dev │ Активная разработка. Возможны нестабильные или неполные изменения. │
└────────┴────────────────────────────────────────────────────────────────────┘

Разработка

Типичные задачи из T383838Taskfile.yml:

T282828
task install
task lint:all
task test:all
task build:all

Сокращения T383838Makefile:

┌──────────────┬─────────────────────────────────────────┐
│ Команда │ Описание │
├──────────────┼─────────────────────────────────────────┤
│ T383838make install │ Установить зависимости pnpm и poetry │
│ T383838make run │ Запуск MeshChatX через poetry │
│ T383838make build │ Сборка фронтенда │
│ T383838make lint │ eslint и ruff │
│ T383838make test │ Тесты фронтенда и бэкенда │
│ T383838make clean │ Удалить артефакты сборки и node_modules │
└──────────────┴─────────────────────────────────────────┘

Версионирование

Текущая версия в репозитории: T3838384.5.0.

• Источник версии JS/Electron — T383838package.json.
• T383838meshchatx/src/version.py синхронизируется из T383838package.json:

T282828
pnpm run version:sync

Для согласованных релизов выравнивайте поля версий где нужно (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).

Безопасность

• Встроенные проверки целостности и HTTPS/WSS по умолчанию в приложении
• CI-сканирование в T383838.gitea/workflows/

Добавление языка

Обнаружение локали происходит автоматически. Добавьте новый файл в T383838meshchatx/src/frontend/locales/ (например T383838xx.json) с теми же ключами, что и в T383838en.json, и полем T383838_languageName в начале для подписи в селекторе языка. Можно скопировать T383838en.json и перевести всё вручную; автоматическая генерация (Argos и т. п.) необязательна и не требуется.

Исправления и переводы от людей приветствуются. Улучшения существующих файлов локали или полностью ручной перевод можно прислать через pull request или issue в исходном репозитории или на зеркале GitHub.

По желанию: черновик через Argos Translate -- если нужен машинный первый проход из T383838en.json, можно использовать T383838scripts/argos_translate.py. Он обрабатывает форматирование и помогает защитить переменные интерполяции (например T383838{count}).

T282828
T8b949e# Установите argostranslate, если вы еще этого не сделали
pip install argostranslate

T8b949e# Запустите скрипт перевода
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Название вашего языка"


После машинного черновика имеет смысл проверить грамматику, контекст и тон с помощью LLM или человека (формальный или неформальный стиль).

Проверьте совпадение ключей с помощью: T383838pnpm test -- tests/frontend/i18n.test.js --run

Никаких других изменений в коде не требуется. Приложение, селектор языка и тесты обнаруживают локали из каталога T383838meshchatx/src/frontend/locales/ во время сборки.

Авторы

Liam Cottle — оригинальный Reticulum MeshChat
RFnexus — парсер Micron (JavaScript)
markqvist — Reticulum, LXMF, LXST

Лицензия

Собственные части проекта лицензированы по 0BSD.
Оригинальные upstream-части, унаследованные от MeshChat, остаются под MIT.
Полный текст и уведомления см. в ../LICENSE.


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────